Skip to content

Add NXP LPC54S018M-EVK port#96

Open
aidangarske wants to merge 3 commits intomasterfrom
nxp-LPC54S-port
Open

Add NXP LPC54S018M-EVK port#96
aidangarske wants to merge 3 commits intomasterfrom
nxp-LPC54S-port

Conversation

@aidangarske
Copy link
Copy Markdown
Member

Description

  • Add bare-metal wolfIP port for the NXP LPCXpresso54S018M-EVK (Cortex-M4F, LPC54S018J4M)
  • Add shared NXP LPC Ethernet driver src/port/lpc_enet/ for Synopsys DW Ethernet QoS MAC
  • DHCP, ICMP ping, TCP echo server on port 7 over 100 Mbps RMII Ethernet (LAN8720A PHY)
  • Sub-millisecond ping latency at 96 MHz (FRO HF)
  • Build CI .github/workflows/lpc54s018.yml

  First NXP platform support for wolfIP. Adds a bare-metal port for the
  LPCXpresso54S018M development board (Cortex-M4F, 96 MHz) with DHCP,
  ICMP ping, and TCP echo server over 100 Mbps Ethernet (LAN8720A PHY).

  The Ethernet driver is split into a shared lpc_enet/ component (Synopsys
  DesignWare Ethernet QoS with enhanced descriptors) and board-specific
  code in lpc54s018/, matching the existing stm32/stm32h563 structure for
  easy reuse across other NXP LPC boards.

  Tested: DHCP lease acquisition, ICMP ping (<1 ms), TCP echo on port 7.
@aidangarske aidangarske self-assigned this Apr 2, 2026
Copilot AI review requested due to automatic review settings April 2, 2026 18:56

This comment was marked as resolved.

wolfSSL-Fenrir-bot

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings April 2, 2026 20:49
@aidangarske aidangarske review requested due to automatic review settings April 2, 2026 20:50
@aidangarske aidangarske requested a review from danielinux April 2, 2026 20:50
@aidangarske aidangarske marked this pull request as ready for review April 2, 2026 20:51
Copilot AI review requested due to automatic review settings April 2, 2026 20:51

This comment was marked as resolved.

  - Makefile: Add cppcheck comparePointers suppressions for lpc54s018 startup.c/syscalls.c
  - main.c: Fix non-atomic 64-bit tick_ms reads with get_tick_ms() (disable/enable interrupts)
  - startup.c: Restore __libc_init_array() call (matches other ports)
  - lpc_enet.c: Add RX_BUF_SIZE bounds check in eth_poll to prevent buffer over-read
  - fix_checksum.py: Auto-detect vector table offset (0x0 for RAM build, 0x200 for flash)
  - target_ram.ld: Clarify SRAM2 is 32KB on J4M package
  - flash.sh: Add flash helper script (matches N6 port's flash.sh)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants